#include<iostream>
#include<cmath>
using namespace std;
const int N=1e5+10;
int n,m;
int f[N],x[N],y[N],t[N];
int main()
{
	cin>>n>>m;
	int ret=0; 
	for(int i = 1; i <= m; i++)
	{
		cin>>t[i]>>x[i]>>y[i];
		f[i]=1;
		//每次进来先把这个鼠鼠设置成1，表示最有一个打的位置是i位置的老鼠最多能雄安灭多少个老鼠
		for(int j = 1; j < i; j++)

		{
			//j走到i
			if(t[i] - t[j] >= abs(x[i] - x[j]) + abs(y[i] - y[j])) //因为是j走到i所以说zi必须大于zj 
			{
				f[i]=max(f[i],f[j]+1);
			}
		} 
		ret = max(ret, f[i]);

	}
	cout<<ret<<endl;
	return 0;
}